/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import Entidades.Usuario;
import javafx.event.*;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import ManagersUI.VentanaPrincipalManager;
import Usuarios.ManejoTiposUsuario;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
/**
 *
 * @author JEscalante
 */
public class VentanaPrincipalController {
    VentanaPrincipalManager ventanaManager;
    Usuario Usuario;
    @FXML
    private VBox pnlPrincipal;
    @FXML
    private HBox pnlMenu;
    @FXML
    private void abrirUsuarios(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlUsuarios(Usuario));
    }
    @FXML
    private void abrirAulas(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlAulas(Usuario));
    }
    @FXML
    private void abrirCatedraticos(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlCatedraticos(Usuario));
    }
    @FXML
    private void abrirCursos(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlCursos());
    }
    @FXML
    private void abrirAjustes(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlAjustes(Usuario));
    }
    @FXML
    private void abrirAsignaciones(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlAsignaciones());
    }
    @FXML
    private void abrirReportes(ActionEvent event) throws IOException{      
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(this.ventanaManager.showPnlReportes());
    }
    
    public void initialize() {}
  
    public void initManager(final VentanaPrincipalManager ventanaManager, Usuario usuario) {    
        this.Usuario = usuario;
        this.ventanaManager = ventanaManager;
        comprobarAccesos(usuario); 
    }
    public void comprobarAccesos(Usuario usuario){
         ManejoTiposUsuario manejoPermisos = new ManejoTiposUsuario();
        List<Button> botonesAcceso = new ArrayList<Button>();
        botonesAcceso.add((Button) pnlMenu.getChildren().get(0));
        for(int i=1; i<pnlMenu.getChildren().size(); i++){
            if(manejoPermisos.poseeAcceso(usuario.getTipoUsuarioidTipoUsuario(), pnlMenu.getChildren().get(i).getId())){
                botonesAcceso.add((Button) pnlMenu.getChildren().get(i));
            }
        }
        pnlMenu.getChildren().clear();
        pnlMenu.getChildren().addAll(botonesAcceso);
    }
}
